using net_work.Common.Request;
using net_work.Common.Result;
using net_work.Data.DTO.Sys;
using net_work.Data.Entity.Sys;
using net_work.Data.VO.Sys;

namespace net_work.IService.Sys;

public interface ITeacherService
{
    /// <summary>
    /// 分页查询教师
    /// </summary>
    /// <param name="request">查询参数</param>
    /// <returns>分页结果</returns>
    Task<PagedResult<TeacherResult>> GetTeachersPagedAsync(PagedRequest request);

    /// <summary>
    /// 根据教师ID查询教师信息
    /// </summary>
    /// <param name="teacherId">教师ID</param>
    /// <returns>教师信息</returns>
    Task<Teacher?> SelectByIdAsync(long teacherId);

    /// <summary>
    /// 插入教师
    /// </summary>
    /// <param name="teacherAddRequest">新增教师实体</param>
    /// <returns>新增教师ID</returns>
    Task<long> InsertTeacher(TeacherAddRequest teacherAddRequest);

    /// <summary>
    /// 更新教师信息
    /// </summary>
    /// <param name="teacherUpdateRequest">更新教师信息</param>
    /// <returns>是否成功</returns>
    Task<int> UpdateTeacher(TeacherUpdateRequest teacherUpdateRequest);

    /// <summary>
    /// 删除教师
    /// </summary>
    /// <param name="ids">教师ID集合</param>
    /// <returns>是否成功</returns>
    Task<int> DeleteTeacherByIds(List<long> ids);
}